package com.jikangjun.disk.file.entity;

import java.util.List;
import java.util.Date;

public class FileCopyResponse {
    
    /**
     * 操作是否成功
     */
    private boolean success;
    
    /**
     * 响应消息
     */
    private String message;
    
    /**
     * 操作时间戳
     */
    private Date operationTime;
    
    /**
     * 成功复制的文件列表
     */
    private List<String> successFiles;
    
    /**
     * 复制失败的文件列表
     */
    private List<String> failedFiles;
    
    /**
     * 操作类型
     */
    private String operationType;
    
    /**
     * 目标路径
     */
    private String targetPath;
    
    /**
     * 总文件数
     */
    private int totalFiles;
    
    /**
     * 成功文件数
     */
    private int successCount;
    
    /**
     * 失败文件数
     */
    private int failedCount;
    
    /**
     * 错误代码
     */
    private String errorCode;
    
    /**
     * 详细错误信息
     */
    private String detailedError;

    // 默认构造函数
    public FileCopyResponse() {
        this.operationTime = new Date();
    }

    // 带参数的构造函数
    public FileCopyResponse(boolean success, String message) {
        this.success = success;
        this.message = message;
        this.operationTime = new Date();
    }

    // Getters and Setters
    public boolean isSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Date getOperationTime() {
        return operationTime;
    }

    public void setOperationTime(Date operationTime) {
        this.operationTime = operationTime;
    }

    public List<String> getSuccessFiles() {
        return successFiles;
    }

    public void setSuccessFiles(List<String> successFiles) {
        this.successFiles = successFiles;
    }

    public List<String> getFailedFiles() {
        return failedFiles;
    }

    public void setFailedFiles(List<String> failedFiles) {
        this.failedFiles = failedFiles;
    }

    public String getOperationType() {
        return operationType;
    }

    public void setOperationType(String operationType) {
        this.operationType = operationType;
    }

    public String getTargetPath() {
        return targetPath;
    }

    public void setTargetPath(String targetPath) {
        this.targetPath = targetPath;
    }

    public int getTotalFiles() {
        return totalFiles;
    }

    public void setTotalFiles(int totalFiles) {
        this.totalFiles = totalFiles;
    }

    public int getSuccessCount() {
        return successCount;
    }

    public void setSuccessCount(int successCount) {
        this.successCount = successCount;
    }

    public int getFailedCount() {
        return failedCount;
    }

    public void setFailedCount(int failedCount) {
        this.failedCount = failedCount;
    }

    public String getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(String errorCode) {
        this.errorCode = errorCode;
    }

    public String getDetailedError() {
        return detailedError;
    }

    public void setDetailedError(String detailedError) {
        this.detailedError = detailedError;
    }

    @Override
    public String toString() {
        return "FileCopyResponse{" +
                "success=" + success +
                ", message='" + message + '\'' +
                ", operationTime=" + operationTime +
                ", successFiles=" + successFiles +
                ", failedFiles=" + failedFiles +
                ", operationType='" + operationType + '\'' +
                ", targetPath='" + targetPath + '\'' +
                ", totalFiles=" + totalFiles +
                ", successCount=" + successCount +
                ", failedCount=" + failedCount +
                ", errorCode='" + errorCode + '\'' +
                ", detailedError='" + detailedError + '\'' +
                '}';
    }
} 